package com.bcmusic.music.pojo;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import javax.persistence.*;
import java.io.Serializable;
import java.util.Date;

/****
 * @Author:admin
 * @Description:MusicPermission构建
 * @Date 2019/6/14 19:13
 *****/
@ApiModel(description = "MusicPermission",value = "MusicPermission")
@Table(name="music_permission")
public class MusicPermission implements Serializable{

	@ApiModelProperty(value = "音乐发布信息id。",required = false)
	@Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "permission_id")
	private Integer permissionId;//音乐发布信息id。

	@ApiModelProperty(value = "音乐id",required = false)
    @Column(name = "music_id")
	private Integer musicId;//音乐id

	@ApiModelProperty(value = "拥有者名单",required = false)
    @Column(name = "owner_number")
	private String ownerNumber;//拥有者名单

	@ApiModelProperty(value = "0为许可，1为转让，2为分发",required = false)
    @Column(name = "type")
	private Integer type;//0为许可，1为转让，3为分发

	@ApiModelProperty(value = "允许授权的类型。",required = false)
    @Column(name = "allow_type")
	private String allowType;//允许授权的类型。

	@ApiModelProperty(value = "允许授权的区域。即版权方允许该音乐授权到哪些区域。（暂定）00为允许国内地区，01为允许国外地区，02为两者均允许。",required = false)
    @Column(name = "allow_region")
	private Integer allowRegion;//允许授权的区域。即版权方允许该音乐授权到哪些区域。（暂定）00为允许国内地区，01为允许国外地区，02为两者均允许。

	@ApiModelProperty(value = "允许授权开始的时间。即版权方允许该音乐从什么时候开始可授权给被授权方。默认为发布信息提交的时间。",required = false)
    @Column(name = "allow_start_time")
	private Date allowStartTime;//允许授权开始的时间。即版权方允许该音乐从什么时候开始可授权给被授权方。默认为发布信息提交的时间。

	@ApiModelProperty(value = "允许授权结束的时间。即版权方允许该音乐授权给被授权方的截止时间。不得早于发布信息提交的时间。",required = false)
    @Column(name = "allow_end_time")
	private Date allowEndTime;//允许授权结束的时间。即版权方允许该音乐授权给被授权方的截止时间。不得早于发布信息提交的时间。

	@ApiModelProperty(value = "授权单价（元/天）。",required = false)
    @Column(name = "price_per_day")
	private String pricePerDay;//授权单价（元/天）。

	@ApiModelProperty(value = "0 表示不允许，1表示允许",required = false)
    @Column(name = "is_perpetual")
	private Integer isPerpetual;//0 表示不允许，1表示允许

	@ApiModelProperty(value = "永久授权单价（单项）",required = false)
    @Column(name = "perpetual_price")
	private String perpetualPrice;//永久授权单价（单项）

	@ApiModelProperty(value = "分发商数量，只有类型是3的时候有效",required = false)
    @Column(name = "distributors_num")
	private Integer distributorsNum;//分发商数量，只有类型是3的时候有效

	@ApiModelProperty(value = "音乐发布状态。0默认为待审核，1为已发布，-1为审核不通过，-2为已过期，-3为已撤销。 除了待审核的记录可以修改其他字段，已发布/审核不通过/已过期/已撤销的记录不可再更改。有发布信息的音乐只有等到该发布信息过期了，才可发布新的信息。",required = false)
    @Column(name = "valid_status")
	private Integer validStatus;//音乐发布状态。0默认为待审核，1为已发布，-1为审核不通过，-2为已过期，-3为已撤销。除了待审核的记录可以修改其他字段，已发布/审核不通过/已过期/已撤销的记录不可再更改。有发布信息的音乐只有等到该发布信息过期了，才可发布新的信息。

	@ApiModelProperty(value = "提交时间。默认为提交音乐发布申请的时间。",required = false)
    @Column(name = "submit_time")
	private Date submitTime;//提交时间。默认为提交音乐发布申请的时间。

	@ApiModelProperty(value = "审核时间。即管理员审核音乐发布信息的时间。",required = false)
    @Column(name = "check_time")
	private Date checkTime;//审核时间。即管理员审核音乐发布信息的时间。

	@ApiModelProperty(value = "审核者编号。即审核音乐发布申请的管理员的编号。此处为任意类型的管理员。",required = false)
    @Column(name = "auditor_number")
	private String auditorNumber;//审核者编号。即审核音乐发布申请的管理员的编号。此处为任意类型的管理员。

	@ApiModelProperty(value = "",required = false)
    @Column(name = "modification_time")
	private Date modificationTime;//


	//get方法
	public Integer getPermissionId() {
		return permissionId;
	}

	//set方法
	public void setPermissionId(Integer permissionId) {
		this.permissionId = permissionId;
	}
	//get方法
	public Integer getMusicId() {
		return musicId;
	}

	//set方法
	public void setMusicId(Integer musicId) {
		this.musicId = musicId;
	}
	//get方法
	public String getOwnerNumber() {
		return ownerNumber;
	}

	//set方法
	public void setOwnerNumber(String ownerNumber) {
		this.ownerNumber = ownerNumber;
	}
	//get方法
	public Integer getType() {
		return type;
	}

	//set方法
	public void setType(Integer type) {
		this.type = type;
	}
	//get方法
	public String getAllowType() {
		return allowType;
	}

	//set方法
	public void setAllowType(String allowType) {
		this.allowType = allowType;
	}
	//get方法
	public Integer getAllowRegion() {
		return allowRegion;
	}

	//set方法
	public void setAllowRegion(Integer allowRegion) {
		this.allowRegion = allowRegion;
	}
	//get方法
	public Date getAllowStartTime() {
		return allowStartTime;
	}

	//set方法
	public void setAllowStartTime(Date allowStartTime) {
		this.allowStartTime = allowStartTime;
	}
	//get方法
	public Date getAllowEndTime() {
		return allowEndTime;
	}

	//set方法
	public void setAllowEndTime(Date allowEndTime) {
		this.allowEndTime = allowEndTime;
	}
	//get方法
	public String getPricePerDay() {
		return pricePerDay;
	}

	//set方法
	public void setPricePerDay(String pricePerDay) {
		this.pricePerDay = pricePerDay;
	}
	//get方法
	public Integer getIsPerpetual() {
		return isPerpetual;
	}

	//set方法
	public void setIsPerpetual(Integer isPerpetual) {
		this.isPerpetual = isPerpetual;
	}
	//get方法
	public String getPerpetualPrice() {
		return perpetualPrice;
	}

	//set方法
	public void setPerpetualPrice(String perpetualPrice) {
		this.perpetualPrice = perpetualPrice;
	}
	//get方法
	public Integer getDistributorsNum() {
		return distributorsNum;
	}

	//set方法
	public void setDistributorsNum(Integer distributorsNum) {
		this.distributorsNum = distributorsNum;
	}
	//get方法
	public Integer getValidStatus() {
		return validStatus;
	}

	//set方法
	public void setValidStatus(Integer validStatus) {
		this.validStatus = validStatus;
	}
	//get方法
	public Date getSubmitTime() {
		return submitTime;
	}

	//set方法
	public void setSubmitTime(Date submitTime) {
		this.submitTime = submitTime;
	}
	//get方法
	public Date getCheckTime() {
		return checkTime;
	}

	//set方法
	public void setCheckTime(Date checkTime) {
		this.checkTime = checkTime;
	}
	//get方法
	public String getAuditorNumber() {
		return auditorNumber;
	}

	//set方法
	public void setAuditorNumber(String auditorNumber) {
		this.auditorNumber = auditorNumber;
	}
	//get方法
	public Date getModificationTime() {
		return modificationTime;
	}

	//set方法
	public void setModificationTime(Date modificationTime) {
		this.modificationTime = modificationTime;
	}


}
